<?php

namespace app\common\lib;

class ClassArr
{

    public static function smsClassStat()
    {
        return [
            "ali" => "app\common\lib\sms\AliSms",

        ];
    }



    public static function initClass($type, $classs, $params = [], $needInstance = false)
    {
        // 如果我们工厂模式调用的方法是静态，那么我们这个地方就返回类库 AliSms
        //如果不是静态的 就返回对象
        //检查数组里是否有指定的键名或索引
        if (!array_key_exists($type, $classs)) {
            return false;
        }
        $className = $classs = [$type];

        //new ReflectionClass('A')=>建立了A反射类
        //->newInstanceArgs($args) => 相当于实例化A对象
        return $needInstance == true ? (new \ReflectionClass($className))->newInstanceArgs($params) : $className;

    }
}